// 可以将此代码放置于项目src/hooks/useColPickerData.ts中
import { useCascaderAreaData } from '@vant/area-data'

export type CascaderOption = {
	text: string
	value: string
	children?: CascaderOption[]
}

/**
 * 使用'@vant/area-data'作为数据源，构造ColPicker组件的数据
 * @returns
 */
export function useColPickerData() {
	// '@vant/area-data' 数据源
	const colPickerData: CascaderOption[] = useCascaderAreaData()

	// 根据code查找子节点，不传code则返回所有节点
	function findChildrenByCode(data: CascaderOption[], code?: string): CascaderOption[] | null {
		if (!code) {
			return data
		}
		for (const item of data) {
			if (item.value === code) {
				return item.children || null
			}
			if (item.children) {
				const childrenResult = findChildrenByCode(item.children, code)
				if (childrenResult) {
					return childrenResult
				}
			}
		}
		return null
	}

	return { colPickerData, findChildrenByCode }
}
